nums = [1,3,-1,-3,5,3,6,7], k = 3
 var maxSlidingWindow = function(nums, k) {
     // 维护一个长度不超过窗口宽度单调递减队列
     // [5，3] 6 妄图能让6进入队列的过程就是再找最大值
     const len=nums.length
     const res=[]
     const deque=[]//单调递减队列
     for(i=0;i<len;i++){
        //不断将比当前元素小的元素出队
      while(nums.length && nums[i]>nums[deque.length-1])
     {
       deque.pop()
     }
        deque.push(i)
        // 当队头的索引已经
     if(i-deque[0]>=k)
     {
        deque.shift()
     }
         //某个时候要开始要求最大值
     if(i>=k-1)
     {
        res.push(nums[deque[0]])
     }       
      
     }  
     return res
     
     
};
console.log(maxSlidingWindow(nums,k))

// var maxSlidingWindow = function(nums, k) {
//     const len =nums.length
//     let left=0
//     let right=k-1
//     const res=[]
//     while(right<len){
//         // 获取left到right之间的最大值
//         const max=getMax(nums,left,right)
//         res.push(max)
//         left++
//         right++
//     }
//     return res
    
// };
// function getMax(nums,left,right){
//     let max=-Infinity
//     for(let i=left;i<=right;i++)
//     {
//         if(nums[i]>max)
//         {
//             max=nums[i]
//         }
//     }
//     return max
// }
// console.log(maxSlidingWindow(nums,k))
    
  